// import axios from "axios";

// const service = axios.create({
//     // baseURL: 'http://192.168.8.191:8080',
//     // baseURL: 'http://localhost:8080',
//     baseURL: '/api',
// });
// // http://192.168.8.191:8080

// //Axios的响应拦截器..
// service.interceptors.response.use(resp => {
//     return resp.data;
// }, error => {
//     return Promise.reject(error);
// });
// export default service;


import axios from "axios";
import { useTokenStore } from "../stores/token";

const service = axios.create({
    // baseURL: 'http://192.168.8.191:8080',
    // baseURL: 'http://localhost:8080',
    baseURL: '/api',
});

// Axios的请求拦截器，在这里添加token到请求头

axios.interceptors.request.use(config => {
    const tokenStore = useTokenStore();
    if (tokenStore.token) {
        config.headers.token = tokenStore.token;
    }
    return config;
}, error => {
    return Promise.reject(error);
});

service.interceptors.request.use(config => {
    const tokenStore = useTokenStore();
    if (tokenStore.token) {
        // 一般后端会约定一个请求头的字段名来接收token，常见的如 'Authorization'，并要求按照一定格式传递，比如 'Bearer <token>'，这里按照此格式添加，你需要根据后端实际要求调整
        config.headers.token =tokenStore.token;
    }
    return config;
}, error => {
    return Promise.reject(error);
});

// // Axios的响应拦截器
// service.interceptors.response.use(resp => {
//     return resp.data;
// }, error => {
//     return Promise.reject(error);
// });

//响应拦截器
service.interceptors.response.use(response => {
    return response.data;
}, error =>{
    if(error.code === "500"){
        ElMessage.error("服务器错误！");
    }
    const response = error.response;
    if(error.response && error.response.status === 403){
        //提示一下权限不足
        ElMessage.warning(response.data.message);
    } else if(response && response.code === 401){
        //提示一下未登录
        ElMessage.warning(response.data.message);
        //跳转登录页面
        const curURL = router.currentRoute.value.path;
        if(curURL.startsWith('/')){
            router.push('/login')
        } else{
            router.push('/login');
        }
        console.log();
    }
    return Promise.reject(error);
})

export default service;